/**
 * 任务管理 API 封装
 */
import { get, post, patch, del } from './request.js'
import { API_BASE_URL } from './config.js'

const TASKS_BASE = '/api/tasks'

/**
 * 获取任务列表
 * @param {Object} params - 查询参数
 * @param {number} params.user_id - 用户ID（可选）
 * @param {string} params.status - 任务状态（可选）
 * @param {number} params.skip - 跳过记录数
 * @param {number} params.limit - 返回记录数
 * @returns {Promise}
 */
export function getTasks(params = {}) {
  return get(TASKS_BASE, params)
}

/**
 * 获取单个任务详情
 * @param {number} taskId - 任务ID
 * @returns {Promise}
 */
export function getTask(taskId) {
  return get(`${TASKS_BASE}/${taskId}`)
}

/**
 * 创建任务
 * @param {Object} taskData - 任务数据
 * @param {number} taskData.user_id - 用户ID
 * @param {string} taskData.name - 任务名称
 * @param {Object} taskData.strategy - 策略配置
 * @returns {Promise}
 */
export function createTask(taskData) {
  return post(TASKS_BASE, taskData)
}

/**
 * 更新任务
 * @param {number} taskId - 任务ID
 * @param {Object} taskData - 更新的数据
 * @returns {Promise}
 */
export function updateTask(taskId, taskData) {
  return patch(`${TASKS_BASE}/${taskId}`, taskData)
}

/**
 * 删除任务
 * @param {number} taskId - 任务ID
 * @returns {Promise}
 */
export function deleteTask(taskId) {
  return del(`${TASKS_BASE}/${taskId}`)
}

/**
 * 启动任务
 * @param {number} taskId - 任务ID
 * @returns {Promise}
 */
export function startTask(taskId) {
  return post(`${TASKS_BASE}/${taskId}/start`)
}

/**
 * 暂停任务
 * @param {number} taskId - 任务ID
 * @returns {Promise}
 */
export function pauseTask(taskId) {
  return post(`${TASKS_BASE}/${taskId}/pause`)
}

/**
 * 手动执行任务
 * @param {number} taskId - 任务ID
 * @returns {Promise}
 */
export function executeTask(taskId) {
  return post(`${TASKS_BASE}/${taskId}/execute`)
}

/**
 * 获取用户任务统计
 * @param {number} userId - 用户ID
 * @returns {Promise}
 */
export function getUserTaskStats(userId) {
  return get(`${TASKS_BASE}/user/${userId}/stats`)
}
